package cn.com.bod.fas.clm.controller;

import cn.com.bod.fas.clm.model.vo.dto.request.SignConRequVo;
import cn.com.bod.fas.clm.model.vo.dto.response.ConListRespVo;
import cn.com.bod.fas.clm.service.CnConService;
import cn.com.bod.fas.common.utils.ResultUtil;
import cn.com.yusys.yusp.commons.web.rest.dto.ResultDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;


/**
 * @description 合同生成-签订
 * @author shihf
 * @date 2019年09月17日 19时58分42秒
 * @version 1.0.0
 * @Copyright (c) scfhdt
 */
@Api(value = "/api/cn/contract",tags = "合同生成-签订接口")
@RestController
@RequestMapping("/api/cn/contract")
public class CnConController {

    @Autowired
    private CnConService cnConService;

    @Autowired
    private ResultUtil resultUtil;

    /**
     * @description 合同签订
     * @author shihf
     * @date 2019年09月24日 10:10
     * @param signConRequVo
     * @return cn.com.yusys.yusp.commons.web.rest.dto.ResultDto<java.lang.Void>
     */
    @ApiOperation(value = "/signContract",notes = "合同签订")
    @PostMapping("/signContract")
    public ResultDto<Void> signCon(@RequestBody @Valid SignConRequVo signConRequVo) {
        cnConService.signCon(signConRequVo);
        return resultUtil.success();
    }

    /**
     * @description 根据贷款申请号查询合同列表
     * @author shihf
     * @date 2019年09月26日 11:36
     * @param loanApplyNo 贷款申请号
     * @return  ResultDto<List<ConListRespVo>> 合同列表
     */
    @ApiOperation(value = "/listContract",notes = "合同列表")
    @GetMapping("/listContract")
    public ResultDto<List<ConListRespVo>> conList(@ApiParam(value = "申请编号")  @NotNull @RequestParam("loanApplyNo") Long loanApplyNo) {
        List<ConListRespVo> conListRespVos= cnConService.selectConListByLoanApplyNo(loanApplyNo);
        return resultUtil.success(conListRespVos);
    }

}
